<?php
/**
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

// @codingStandardsIgnoreFile
/**
 * @var \Magento\Authorizenet\Block\Transparent\Iframe $block
 * @see \Magento\Authorizenet\Block\Transparent\Iframe
 */
$code = $block->escapeHtml($block->getMethodCode());
$method = $block->getMethod();
$controller = $block->escapeHtml($block->getRequest()->getControllerName());
$orderUrl = $block->escapeUrl($this->helper('Magento\Authorizenet\Helper\Backend\Data')->getPlaceOrderAdminUrl());
$ccType = $block->getInfoData('cc_type');
$ccExpMonth = $block->getInfoData('cc_exp_month');
$ccExpYear = $block->getInfoData('cc_exp_year');
?>
<!-- IFRAME for request to our server -->
<iframe id="order-directpost-iframe" allowtransparency="true" frameborder="0" name="iframeSubmitOrder"
        style="display:none;width:100%;background-color:transparent"
        src="<?php echo $block->escapeUrl($block->getViewFileUrl('blank.html')); ?>">
</iframe>
<!-- IFRAME for request to Authorize.net -->
<iframe id="directpost-iframe" allowtransparency="true" frameborder="0"  name="iframeDirectPost"
        style="display:none;width:100%;background-color:transparent"
        src="<?php echo $block->escapeUrl($block->getViewFileUrl('blank.html')); ?>">
</iframe>
<fieldset class="admin__fieldset payment-method" id="payment_form_<?php /* @noEscape */ echo $code; ?>"
          style="display:none;">
    <div class="admin__field _required">
        <label for="<?php /* @noEscape */ echo $code; ?>_cc_type" class="admin__field-label">
            <span><?php echo $block->escapeHtml(__('Credit Card Type')); ?></span>
        </label>
        <div class="admin__field-control">
            <select id="<?php /* @noEscape */ echo $code; ?>_cc_type" name="payment[cc_type]"
                    class="admin__control-select"
                    data-validate="{
                        'required':true,
                        'validate-cc-type-select':'#<?php /* @noEscape */ echo $code; ?>_cc_number'
                        }">
                <option value=""><?php echo $block->escapeHtml(__('Please Select')); ?></option>
                <?php foreach ($block->getCcAvailableTypes() as $typeCode => $typeName): ?>
                    <option value="<?php echo $block->escapeHtml($typeCode); ?>"
                            <?php if ($typeCode == $ccType): ?>selected="selected"<?php endif; ?>>
                        <?php echo $block->escapeHtml($typeName); ?>
                    </option>
                <?php endforeach; ?>
            </select>
        </div>
    </div>

    <div class="admin__field _required">
        <label for="<?php /* @noEscape */ echo $code; ?>_cc_number" class="admin__field-label">
            <span><?php echo $block->escapeHtml(__('Credit Card Number')); ?></span>
        </label>
        <div class="admin__field-control">
            <input type="text" id="<?php /* @noEscape */ echo $code; ?>_cc_number"
                   name="payment[cc_number]"
                   data-validate="{
                       'required-number':true,
                       'validate-cc-number':'#<?php /* @noEscape */ echo $code; ?>_cc_type',
                       'validate-cc-type':'#<?php /* @noEscape */ echo $code; ?>_cc_type'
                   }"
                   class="admin__control-text"
                   value="<?php /* @noEscape */ echo $block->getInfoData('cc_number'); ?>"/>
        </div>
    </div>

    <div class="admin__field _required field-date" id="<?php /* @noEscape */ echo $code; ?>_cc_type_exp_div">
        <label for="<?php /* @noEscape */ echo $code; ?>_expiration" class="admin__field-label">
            <span><?php echo $block->escapeHtml(__('Expiration Date')); ?></span>
        </label>

        <div class="admin__field-control">
            <select id="<?php /* @noEscape */ echo $code; ?>_expiration"
                    name="payment[cc_exp_month]"
                    class="admin__control-select admin__control-select-month"
                    data-validate="{
                        'required':true,
                        'validate-cc-exp':'#<?php /* @noEscape */ echo $code; ?>_expiration_yr'
                        }">
                <?php foreach ($block->getCcMonths() as $k => $v): ?>
                    <option value="<?php echo $block->escapeHtml($k); ?>"
                            <?php if ($k == $ccExpMonth): ?>selected="selected"<?php endif; ?>>
                        <?php echo $block->escapeHtml($v); ?>
                    </option>
                <?php endforeach; ?>
            </select>
            <select id="<?php /* @noEscape */ echo $code; ?>_expiration_yr"
                    name="payment[cc_exp_year]"
                    class="admin__control-select admin__control-select-year"
                    data-container="<?php /* @noEscape */ echo $code; ?>-cc-year"
                    data-validate="{required:true}">
                <?php foreach ($block->getCcYears() as $k => $v): ?>
                    <option value="<?php /* @noEscape */ echo $k ? $block->escapeHtml($k) : ''; ?>"
                            <?php if ($k == $ccExpYear): ?>selected="selected"<?php endif; ?>>
                        <?php echo $block->escapeHtml($v); ?>
                    </option>
                <?php endforeach; ?>
            </select>
        </div>
    </div>

    <?php if ($block->hasVerification()): ?>
    <div class="admin__field _required field-cvv">
        <label class="admin__field-label"
               for="<?php /* @noEscape */ echo $code; ?>_cc_cid"
               id="<?php /* @noEscape */ echo $code; ?>_cc_type_cvv_div">
            <span><?php echo $block->escapeHtml(__('Card Verification Number')); ?></span>
        </label>

        <div class="admin__field-control">
            <input type="text"
                   data-container="<?php /* @noEscape */ echo $code; ?>-cc-cvv"
                   title="<?php echo $block->escapeHtml(__('Card Verification Number')); ?>"
                   class="admin__control-text cvv"
                   id="<?php /* @noEscape */ echo $code; ?>_cc_cid" name="payment[cc_cid]"
                   value="<?php /* @noEscape */ echo $block->getInfoData('cc_cid') ?>"
                   data-validate="{
                       'required-number':true,
                       'validate-cc-cvn':'#<?php /* @noEscape */ echo $code; ?>_cc_type'
                   }"
                   autocomplete="off"/>
        </div>
    </div>
    <?php endif; ?>
</fieldset>
<script>
    require([
        'prototype',
        'Magento_Sales/order/create/scripts',
        'Magento_Sales/order/create/form',
        'Magento_Authorizenet/js/direct-post'
    ], function(){

        /**
         * Disable card server validation in admin
         */
        order.addExcludedPaymentMethod('<?php /* @noEscape */ echo $code; ?>');

        <?php if (!$block->isAjaxRequest()): ?>
            document.observe('dom:loaded', function(){
        <?php endif; ?>

        directPostModel = new directPost(
            '<?php /* @noEscape */ echo $code; ?>',
            'directpost-iframe',
            '<?php /* @noEscape */ echo $controller; ?>',
            '<?php /* @noEscape */ echo $orderUrl; ?>',
            '<?php echo $block->escapeUrl($method->getCgiUrl()); ?>',
            '<?php echo $block->escapeUrl($block->getUrl('*/*/save', [
                '_secure' => $block->getRequest()->isSecure()
            ]));?>');

        <?php if (!$block->isAjaxRequest()): ?>
            });
        <?php endif; ?>
    });
</script>
